package com.oa.core.utils;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;

import java.util.List;

public class FastJsonSerializerUtil {
    /**
     * 序列化
     * @param t
     * @param <T>
     * @return
     */
    public static <T> String toJSON(T t){
        if(t==null){
            return null;
        }
        //加上WriteMapNullValue 使得null值也被序列化
        return JSON.toJSONString(t, SerializerFeature.WriteMapNullValue);
    }

    /**
     * 反序列化返回对象
     * @param json
     * @param clazz
     * @param <T>
     * @return
     */
    public static <T> T toObject(String json,Class<T> clazz){
        T t = null;
        try {
            t = JSON.parseObject(json,clazz);
        }catch (Exception e){
            e.printStackTrace();
        }
        return t;
    }

    /**
     * 反序列化返回对象数组
     * @param json
     * @param clazz
     * @param <T>
     * @return
     */
    public static <T> List<T> toArray(String json,Class<T> clazz){
        try {
            List<T> list = JSON.parseArray(json, clazz);
            return list;
        }catch (Exception e){
            e.printStackTrace();
        }
        return null;
    }
}
